/**
 * 应用程序主控制器
 *
 * @file   app.controller.ts
 * @author ahaotriple
 * @date   2024-03-05
 * @version 1.0.0
 * @license MIT
 *
 * @description
 * 这是应用程序的根控制器，处理根路径的请求。
 * 主要用于：
 * 1. 处理应用程序根路径的访问
 * 2. 提供应用程序的健康检查接口
 * 3. 作为控制器实现的示例
 *
 * @example
 * // 获取欢迎信息
 * GET /
 *
 * // 健康检查
 * GET /health
 */

import { Controller, Get } from '@nestjs/common';
import { AppService } from './app.service';

/**
 * 应用程序根控制器
 * 处理根路径 '/' 的请求
 *
 * @class AppController
 */
@Controller()
export class AppController {
  constructor(private readonly appService: AppService) {}

  /**
   * 获取应用程序欢迎信息
   *
   * @returns {string} 返回欢迎信息
   * @example
   * GET /
   * Response: "Hello World!"
   *
   * @public
   * @method getHello
   */
  @Get()
  getHello(): string {
    return this.appService.getHello();
  }

  /**
   * 健康检查接口
   * 用于监控系统运行状态
   *
   * @returns {object} 返回应用程序状态信息
   * @example
   * GET /health
   * Response: {
   *   "status": "ok",
   *   "timestamp": "2024-03-05T10:00:00.000Z"
   * }
   *
   * @public
   * @method healthCheck
   */
  @Get('health')
  healthCheck(): object {
    return {
      status: 'ok',
      timestamp: new Date().toISOString(),
    };
  }
}
